﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
//练习1：多个字符从两端移动，向中间汇聚
//int main()
//{
//	char arr1[] = "hava a good day!!!";
//	char arr2[] = "******************";
//	int left = 0;
//	int right = strlen(arr1) - 1;
//	printf("%s\n", arr2);
//	while (left <= right)
//	{
//		Sleep(1000);
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		left++;
//		right--;
//		printf("%s\n", arr2);
//	}
//	system("pause");
//	return 0;
//}

//练习2：⼆分查找 在⼀个升序的数组中查找指定的数字n，很容易想到的⽅法就是遍历数组  升序优先考虑二分
//1.普通遍历
//int main()
//{
//	int arr[] = { 1, 2, 3, 4, 5, 6, 7 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int goal = 0;
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		if (arr[i] == goal)
//		{
//			printf("ok,下标是%d", i);
//			break;
//		}
//		
//	}
//	if (i==sz)
//	{
//		printf("数组无");
//	}
//	system("pause");
//	return 0;
//
//}

//二分
//int main()
//{
//	int arr[] = { 1, 2, 3, 4, 5, 6, 7 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int goal = 0;
//	int left = 0;
//	int right = sz - 1;
//	int mid = (left + right) / 2;
//	while (left <= right)
//	{
//		if (arr[mid] == goal)
//		{
//			printf("ok,下标是%d", mid);
//			break;
//		}
//		else if (arr[mid]<goal)
//		{
//			left = mid + 1;
//		}
//		else
//		{
//			right = mid - 1;
//		}
//	}
//	if (left>right)
//	{
//		printf("no");
//	}
//	system("pause");
//	return 0;
//
//}


